//
//  BlueToothLib.h
//  BlueToothLeon
//
//  Created by apple on 14/11/3.
//  Copyright (c) 2014年 com.yourname. All rights reserved.
//
#import "protocol.h"
#import "ios_lib.h"
#import "L2_Phone.h"
#import <Foundation/Foundation.h>

#define NOTIFY_GET_BATTERY @"NOTIFY_GET_BATTERY"
#define NOTIFY_GET_ALARMS @"NOTIFY_GET_ALARMS"
#define NOTIFY_GET_CURRENT_TASK_DATA @"NOTIFY_GET_CURRENT_TASK_DATA"
#define NOTIFY_GET_CURRENT_SPORT_DATA @"NOTIFY_GET_CURRENT_SPORT_DATA"
#define NOTIFY_GET_UNSYNC_SPORT_DATA @"NOTIFY_GET_UNSYNC_SPORT_DATA"
#define NOTIFY_GET_SLEEP_DATA @"NOTIFY_GET_SLEEP_DATA"
#define NOTIFY_NO_MORE_SPORT_DATA @"NOTIFY_NO_MORE_SPORT_DATA"

#define NOTIFY_RECIVED_BATTERY @"NOTIFY_RECIVED_BATTERY"
#define NOTIFY_RECIVED_CURRENT_TASK_DATA @"NOTIFY_RECIVED_CURRENT_TASK_DATA"
#define NOTIFY_RECIVED_CURRENT_SPORT_DATA @"NOTIFY_RECIVED_CURRENT_SPORT_DATA"
#define NOTIFY_RECIVED_UNSYNC_SPORT_DATA @"NOTIFY_RECIVED_UNSYNC_SPORT_DATA"
#define NOTIFY_RECIVED_SLEEP_DATA @"NOTIFY_RECIVED_SLEEP_DATA"

@interface BlueToothLib : NSObject

/**
 *  同步当前时间
 *
 *  @param  时间值
 */
    +(void)synchronizationTimeNew:(uint32_t)second withBlock:(BLECallBack)block;
/**
 *  获取当前手环闹钟设置
 */
+(void)alarmGetWithBlock:(BLECallBack)block;
/**
 *  只设置第n组闹钟
 *
 *  @param alarm      闹钟时间
 *  @param alarmCount 组数，最多为两组，可以分开设置，也可以同时设置两组
 */
+(void)alarmSetting:(alarm_setting_t *)alarm
         alarmCount:(uint8_t)alarmCount withBlock:(BLECallBack)block;
/**
 *  设置用户信息
 *
 *  @param p_info 用户信息
 */
+(void)userinfoSetting:(user_info_t *)info withBlock:(BLECallBack)block;

/**
 *  任务设置
 *
 *  @param uSteps 目标步数
 */
+(void) stepTargetSetting:(uint32_t)uSteps withBlock:(BLECallBack)block;

/**
 *  读取当前运动数据
 *
 *  @param request 0x01 当前任务数据  0x02 当前步数数据 0x04 未同步的第一天历史数据 0x0820条睡眠数据
 */
+(void)requestSportData:(uint8_t)request withBlock:(BLECallBack)block;
/**
 *  获取手环当前的固件版本号
 */
-(void)otaControlWithBlock:(BLECallBack)block;
/**
 *  强制升级，不需要关心当前版本号
 */
-(void)forceToUpgradeWithBlock:(BLECallBack)block;
/**
 *  要求手环自己判断版本号是否需要升级
 */
-(void)ifUpgradeWithBlock:(BLECallBack)block;

+(void)getBatteryWithBlock:(BLECallBack)block;

/**
 *  发送升级数据内容
 *
 *  @param pBuffer 升级数据
 *  @param len     数据长度
 */
-(void)otaSend:(uint8_t *)pBuffer
            en:(uint16_t)len withBlock:(BLECallBack)block;
/**
 *  升级数据发送完毕
 *
 *  @param crc      校验值
 *  @param file_len 文件长度
 */
-(void)otaSendOver:(uint16_t)crc
          fileLen:(uint32_t)file_len withBlock:(BLECallBack)block;

/**
 *  手环返回数据出来函数
 *
 *  @param key    命令
 *  @param value  数据内容
 *  @param length 数据返回长度
 */
+(void)returnDataForCommand:(uint8_t)commandId
                        key:(uint8_t)key
                      value:(const uint8_t *)value
                     length:(uint16_t)length;

/**
 *  收到数据, 处理
 *
 *  @param data
 */
+(void)receivedResponse:(NSData *)data;


@end
